﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Configuration;
using Spring.Context.Support;
using Spring.Web.Mvc;
using Spring.Context;
using System.IO;
using AutoMapper;
using System.Reflection;

namespace EWineShop
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : SpringMvcApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }
       
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

        protected void Application_Start()
        {

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
            AreaRegistration.RegisterAllAreas();

            InitMapper();
            InitLog4Net();
            InitSpringConfig();
        }

        /// <summary>
        /// Spring 配置初始化
        /// </summary>
        private void InitSpringConfig()
        {
            string[] springFiles = new string[] { "~/Config/Environment/repository.config", 
                                                  "~/Config/Environment/controllers.config",
                                                  "~/Config/Environment/service.config" };

            ContextRegistry.RegisterContext(new XmlApplicationContext(springFiles));
        }

        private void InitLog4Net()
        {

            string filePath = System.Threading.Thread.GetDomain().BaseDirectory;
            System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath + "\\Config\\log4net.config");
            //初始化日志组件
            log4net.Config.XmlConfigurator.Configure(fileInfo);
        }

        private void InitMapper()
        {

           
            
        }



    }
}